home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / openssl / krb5_asn.h < prev    next >
C/C++ Source or Header  |  2006-04-25  |  8KB  |  257 lines

  1. /* krb5_asn.h */
  2. /* Written by Vern Staats <staatsvr@asc.hpc.mil> for the OpenSSL project,
  3. ** using ocsp/{*.h,*asn*.c} as a starting point
  4. */
  5.  
  6. /* ====================================================================
  7.  * Copyright (c) 1998-2000 The OpenSSL Project.  All rights reserved.
  8.  *
  9.  * Redistribution and use in source and binary forms, with or without
  10.  * modification, are permitted provided that the following conditions
  11.  * are met:
  12.  *
  13.  * 1. Redistributions of source code must retain the above copyright
  14.  *    notice, this list of conditions and the following disclaimer. 
  15.  *
  16.  * 2. Redistributions in binary form must reproduce the above copyright
  17.  *    notice, this list of conditions and the following disclaimer in
  18.  *    the documentation and/or other materials provided with the
  19.  *    distribution.
  20.  *
  21.  * 3. All advertising materials mentioning features or use of this
  22.  *    software must display the following acknowledgment:
  23.  *    "This product includes software developed by the OpenSSL Project
  24.  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
  25.  *
  26.  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
  27.  *    endorse or promote products derived from this software without
  28.  *    prior written permission. For written permission, please contact
  29.  *    openssl-core@openssl.org.
  30.  *
  31.  * 5. Products derived from this software may not be called "OpenSSL"
  32.  *    nor may "OpenSSL" appear in their names without prior written
  33.  *    permission of the OpenSSL Project.
  34.  *
  35.  * 6. Redistributions of any form whatsoever must retain the following
  36.  *    acknowledgment:
  37.  *    "This product includes software developed by the OpenSSL Project
  38.  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
  39.  *
  40.  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
  41.  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  42.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  43.  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
  44.  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  45.  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  46.  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  47.  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  48.  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
  49.  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  50.  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
  51.  * OF THE POSSIBILITY OF SUCH DAMAGE.
  52.  * ====================================================================
  53.  *
  54.  * This product includes cryptographic software written by Eric Young
  55.  * (eay@cryptsoft.com).  This product includes software written by Tim
  56.  * Hudson (tjh@cryptsoft.com).
  57.  *
  58.  */
  59.  
  60. #ifndef HEADER_KRB5_ASN_H
  61. #define HEADER_KRB5_ASN_H
  62.  
  63. /*
  64. #include <krb5.h>
  65. */
  66. #include <openssl/safestack.h>
  67.  
  68. #ifdef  __cplusplus
  69. extern "C" {
  70. #endif
  71.  
  72.  
  73. /*    ASN.1 from Kerberos RFC 1510
  74. */
  75.  
  76. /*    EncryptedData ::=   SEQUENCE {
  77. **        etype[0]                      INTEGER, -- EncryptionType
  78. **        kvno[1]                       INTEGER OPTIONAL,
  79. **        cipher[2]                     OCTET STRING -- ciphertext
  80. **    }
  81. */
  82. typedef    struct    krb5_encdata_st
  83.     {
  84.     ASN1_INTEGER            *etype;
  85.     ASN1_INTEGER            *kvno;
  86.     ASN1_OCTET_STRING        *cipher;
  87.     }    KRB5_ENCDATA;
  88.  
  89. DECLARE_STACK_OF(KRB5_ENCDATA)
  90.  
  91. /*    PrincipalName ::=   SEQUENCE {
  92. **        name-type[0]                  INTEGER,
  93. **        name-string[1]                SEQUENCE OF GeneralString
  94. **    }
  95. */
  96. typedef    struct    krb5_princname_st
  97.     {
  98.     ASN1_INTEGER            *nametype;
  99.     STACK_OF(ASN1_GENERALSTRING)    *namestring;
  100.     }    KRB5_PRINCNAME;
  101.  
  102. DECLARE_STACK_OF(KRB5_PRINCNAME)
  103.  
  104.  
  105. /*    Ticket ::=    [APPLICATION 1] SEQUENCE {
  106. **        tkt-vno[0]                    INTEGER,
  107. **        realm[1]                      Realm,
  108. **        sname[2]                      PrincipalName,
  109. **        enc-part[3]                   EncryptedData
  110. **    }
  111. */
  112. typedef    struct    krb5_tktbody_st
  113.     {
  114.     ASN1_INTEGER            *tktvno;
  115.     ASN1_GENERALSTRING        *realm;
  116.     KRB5_PRINCNAME            *sname;
  117.     KRB5_ENCDATA            *encdata;
  118.     }    KRB5_TKTBODY;
  119.  
  120. typedef STACK_OF(KRB5_TKTBODY) KRB5_TICKET;
  121. DECLARE_STACK_OF(KRB5_TKTBODY)
  122.  
  123.  
  124. /*    AP-REQ ::=      [APPLICATION 14] SEQUENCE {
  125. **        pvno[0]                       INTEGER,
  126. **        msg-type[1]                   INTEGER,
  127. **        ap-options[2]                 APOptions,
  128. **        ticket[3]                     Ticket,
  129. **        authenticator[4]              EncryptedData
  130. **    }
  131. **
  132. **    APOptions ::=   BIT STRING {
  133. **        reserved(0), use-session-key(1), mutual-required(2) }
  134. */
  135. typedef    struct    krb5_ap_req_st
  136.     {
  137.     ASN1_INTEGER            *pvno;
  138.     ASN1_INTEGER            *msgtype;
  139.     ASN1_BIT_STRING            *apoptions;
  140.     KRB5_TICKET            *ticket;
  141.     KRB5_ENCDATA            *authenticator;
  142.     }    KRB5_APREQBODY;
  143.  
  144. typedef STACK_OF(KRB5_APREQBODY) KRB5_APREQ;
  145. DECLARE_STACK_OF(KRB5_APREQBODY)
  146.  
  147.  
  148. /*    Authenticator Stuff    */
  149.  
  150.  
  151. /*    Checksum ::=   SEQUENCE {
  152. **        cksumtype[0]                  INTEGER,
  153. **        checksum[1]                   OCTET STRING
  154. **    }
  155. */
  156. typedef    struct    krb5_checksum_st
  157.     {
  158.     ASN1_INTEGER            *ctype;
  159.     ASN1_OCTET_STRING        *checksum;
  160.     }    KRB5_CHECKSUM;
  161.  
  162. DECLARE_STACK_OF(KRB5_CHECKSUM)
  163.  
  164.  
  165. /*    EncryptionKey ::=   SEQUENCE {
  166. **        keytype[0]                    INTEGER,
  167. **        keyvalue[1]                   OCTET STRING
  168. **    }
  169. */
  170. typedef struct  krb5_encryptionkey_st
  171.     {
  172.     ASN1_INTEGER            *ktype;
  173.     ASN1_OCTET_STRING        *keyvalue;
  174.     }    KRB5_ENCKEY;
  175.  
  176. DECLARE_STACK_OF(KRB5_ENCKEY)
  177.  
  178.  
  179. /*    AuthorizationData ::=   SEQUENCE OF SEQUENCE {
  180. **        ad-type[0]                    INTEGER,
  181. **              ad-data[1]                    OCTET STRING
  182. **    }
  183. */
  184. typedef struct    krb5_authorization_st
  185.     {
  186.     ASN1_INTEGER            *adtype;
  187.     ASN1_OCTET_STRING        *addata;
  188.     }    KRB5_AUTHDATA;
  189.  
  190. DECLARE_STACK_OF(KRB5_AUTHDATA)
  191.  
  192.             
  193. /*    -- Unencrypted authenticator
  194. **    Authenticator ::=    [APPLICATION 2] SEQUENCE    {
  195. **        authenticator-vno[0]          INTEGER,
  196. **        crealm[1]                     Realm,
  197. **        cname[2]                      PrincipalName,
  198. **        cksum[3]                      Checksum OPTIONAL,
  199. **        cusec[4]                      INTEGER,
  200. **        ctime[5]                      KerberosTime,
  201. **        subkey[6]                     EncryptionKey OPTIONAL,
  202. **        seq-number[7]                 INTEGER OPTIONAL,
  203. **        authorization-data[8]         AuthorizationData OPTIONAL
  204. **    }
  205. */
  206. typedef struct    krb5_authenticator_st
  207.     {
  208.     ASN1_INTEGER            *avno;
  209.     ASN1_GENERALSTRING        *crealm;
  210.     KRB5_PRINCNAME            *cname;
  211.     KRB5_CHECKSUM            *cksum;
  212.     ASN1_INTEGER            *cusec;
  213.     ASN1_GENERALIZEDTIME        *ctime;
  214.     KRB5_ENCKEY            *subkey;
  215.     ASN1_INTEGER            *seqnum;
  216.     KRB5_AUTHDATA            *authorization;
  217.     }    KRB5_AUTHENTBODY;
  218.  
  219. typedef STACK_OF(KRB5_AUTHENTBODY) KRB5_AUTHENT;
  220. DECLARE_STACK_OF(KRB5_AUTHENTBODY)
  221.  
  222.  
  223. /*  DECLARE_ASN1_FUNCTIONS(type) = DECLARE_ASN1_FUNCTIONS_name(type, type) =
  224. **    type *name##_new(void);
  225. **    void name##_free(type *a);
  226. **    DECLARE_ASN1_ENCODE_FUNCTIONS(type, name, name) =
  227. **     DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) =
  228. **      type *d2i_##name(type **a, unsigned char **in, long len);
  229. **      int i2d_##name(type *a, unsigned char **out);
  230. **      DECLARE_ASN1_ITEM(itname) = OPENSSL_EXTERN const ASN1_ITEM itname##_it
  231. */
  232.  
  233. DECLARE_ASN1_FUNCTIONS(KRB5_ENCDATA)
  234. DECLARE_ASN1_FUNCTIONS(KRB5_PRINCNAME)
  235. DECLARE_ASN1_FUNCTIONS(KRB5_TKTBODY)
  236. DECLARE_ASN1_FUNCTIONS(KRB5_APREQBODY)
  237. DECLARE_ASN1_FUNCTIONS(KRB5_TICKET)
  238. DECLARE_ASN1_FUNCTIONS(KRB5_APREQ)
  239.  
  240. DECLARE_ASN1_FUNCTIONS(KRB5_CHECKSUM)
  241. DECLARE_ASN1_FUNCTIONS(KRB5_ENCKEY)
  242. DECLARE_ASN1_FUNCTIONS(KRB5_AUTHDATA)
  243. DECLARE_ASN1_FUNCTIONS(KRB5_AUTHENTBODY)
  244. DECLARE_ASN1_FUNCTIONS(KRB5_AUTHENT)
  245.  
  246.  
  247. /* BEGIN ERROR CODES */
  248. /* The following lines are auto generated by the script mkerr.pl. Any changes
  249.  * made after this point may be overwritten when the script is next run.
  250.  */
  251.  
  252. #ifdef  __cplusplus
  253. }
  254. #endif
  255. #endif
  256.  
  257.